package com.yf.monitor.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @ClassName ApiRecord
 * @Description 存储实体类
 * @Author Scott.Yin
 * @Date 2025/8/21 17:33
 * @Version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ApiRecord {
    private Long id;
    /**
     * 追踪ID
     **/
    private String traceId;
    /**
     * 接口名称
     **/
    private String apiName;
    /**
     * HTTP方法
     **/
    private String method;
    /**
     * 请求URI
     **/
    private String uri;
    /**
     * 客户端IP
     **/
    private String remoteAddr;
    /**
     * 服务端ip
     **/
    private String serverAddr;
    /**
     * 用户代理
     **/
    private String userAgent;
    /**
     * 请求体(JSON)
     **/
    private String requestBody;
    /**
     * 响应体(JSON)
     **/
    private String responseBody;
    /**
     * 是否成功
     **/
    private Boolean success;
    /**
     * 错误信息
     **/
    private String errorMsg;
    /**
     * 错误堆栈
     **/
    private String errorStack;
    /**
     * 开始时间戳
     **/
    private Long startTime;
    /**
     * 结束时间戳
     **/
    private Long endTime;
    /**
     * 耗时(毫秒)
     **/
    private Long duration;
    /**
     * 写入时间
     **/
    private Long timestamp;
    /**
     * 关键字类型 + 关键字内容组合
     * (格式)keyType-keyword1:keyword2
     **/
    private String keyword;
}
